package Day35.map.mapTest;

import java.util.*;

/**
 * @author hyhWTX
 * @version 1.0
 * @ClassName Test01
 * @date 2022年08月06日 16:28
 * @Description: 1.    已知字符串“adhflkalkfdhasdkhflsa”
 * （1）统计去掉重复后的字符
 * （2）统计每个字符出现的次数，使用map存储，字符为键，次数为值。
 * （3）遍历map，打印统计信息
 * 编码实现。
 */
public class Test01 {
    public static void main(String[] args) {
        String s = "adhflkalkfdhasdkhflsa";
        //将字符串转换成字符数组
        char[] chars = s.toCharArray();
        System.out.println(chars);
        //得到一个Map的数组，用来存储每个字符和字符出现的次数
        Map<Character, Integer> map = new HashMap<Character, Integer>();
        //遍历数组chars,将字符数组的每个字符当作键存入Map
        for (int i = 0; i < chars.length; i++) {
            //判断字符是否在Map数组里面有，如果有字符对应的值+1,覆盖掉原来的键值。如果没有就给值1
            if (map.containsKey(chars[i])){
                //得到chars[i] 对应的值
                Integer integer = map.get(chars[i]);
                map.put(chars[i],integer);

            }else {
                map.put(chars[i],1);
            }
        }
        System.out.println(map);
        //得到所有的键
        Set<Character> characters = map.keySet();
        //定义一个空字符串
        String str  = "";
        Iterator<Character> iterator = characters.iterator();
        while (iterator.hasNext()){
            //得到key
            Character next = iterator.next();
            //存给字符串
            str+= next;
            //得到key对应的值
            Integer value = map.get(next);
            //打印信息
            System.out.println(next+"的个数是："+value);
        }
        System.out.println(str);
    }
}
